1. Field of the Invention
The present invention relates to an error correcting device, and more particularly to an error correcting device based on a decoding method in which coefficients of an error-locator polynomial and an error-evaluator polynomial are obtained in order from the final digit of a code to the first digit thereof.
2. Description of the Background Art
FIG. 57 is a block diagram showing a structure of a Reed-Solomon error correcting device 200 according to the background art. Data RSIN of a Reed-Solomon code input to the Reed-Solomon error correcting device 200 is used to obtain a syndrome from a syndrome generator 1. A predetermined processing is performed for the syndrome in a polynomial generator 2 so that an error-locator polynomial .delta.(x) and an error-evaluator polynomial .omega.(x) are obtained.
In the polynomial generator 2, however, in the case where the error-locator polynomial .delta.(x) and the error-evaluator polynomial .omega.(x) are obtained by using a Euclid method, for example, their coefficients are obtained in order from a final digit of a code to a first digit thereof. In a corrector 3 for performing a Chien search, accordingly, it is necessary to start the search in order from the final byte of the code to the first byte thereof.
Correspondingly, in the case where the data RSIN is given to the corrector 3, it is necessary to reverse the order of digits for each group of codes. FILO (First In Last Out) type memories 61 and 62 and a demultiplexer 71 and a multiplexer 72 are provided to change the order of the digits for the data RSIN.
Errors of the data RSIN thus obtained and having the order of digits reversed are corrected by the corrector 3 on the basis of the coefficients of the error-locator polynomial .delta.(x) and the error-evaluator polynomial .omega.(x) and an element of Galois. The corrected code also has the order of digits reversed. Therefore, FILO type memories 41 and 42, a demultiplexer 73 and a multiplexer 74 are provided to return the order of digits to original order. A code RSOUT obtained after correction is output by the multiplexer 74.
A FILO type memory according to the background art (hereinafter referred to as a "FILO") operates by pushing and popping. In the case where only one FILO is used, a second set of data cannot be processed of FILO immediately after a first set of data are processed of FILO. The reason is that the first set of data are destroyed if another set of data are input to the FILO before the first set of data are completely read. Consequently, a plurality of Reed-Solomon codes which are continuously received cannot be processed.
Accordingly, the FILOs 41, 42, 61 and 62 output data in order reverse to the order of sequential data input, and should be provided in pairs as shown in FIG. 57.
The data RSIN are distributed every group of Reed-Solomon codes by the demultiplexer 71 and are given to the FILOs 61 and 62. Any of outputs is sent to the corrector 3 by the multiplexer 72. For example, in the case where the demultiplexer 71 gives, to the FILO 61, the data RSIN corresponding to a first group of Reed-Solomon codes, the multiplexer 72 gives the contents stored in the FILO 62 to the corrector 3. At the same time that the demultiplexer 71 gives, to the FILO 62, the data RSIN corresponding to a second group of Reed-Solomon codes, the data RSIN corresponding to the first group of Reed-Solomon codes are given from the FILO 61 to the corrector 3 through the multiplexer 72 in reverse order of digits. So do the FILOs 41 and 42, the demultiplexer 73 and the multiplexer 74.
In the background art, a pair of FILOs which are alternately selected should be used to continuously perform the processings of the FILOs for plural sets of data. Accordingly, a region for storing data should be twice as much as a set of data. Finally, the conventional Reed-Solomon error correcting device 200 including a FIFO (First In First Out) type memory 5 provided for matching a delay with that of the syndrome generator 1 needs a storage unit which is five times as much as a code length (wherein it is supposed that one storage unit stores one byte).